﻿using System;
using System.Collections.Generic;
using System.Text;
using Manager.App_Code.IDAL;
using Manager.App_Code.DTO;
using System.Data;

namespace Manager.App_Code.DAL
{
    class ChiTiet_ChiTietPhieuDatDAL:StandardConnectDB, IChiTiet_ChiTietPhieuDatPhong
    {
        public List<DTO.ChiTiet_ChiTietPhieuDatPhongDTO> GetListPhieuDat_ChiTiet()
        {
            throw new NotImplementedException();
        }

        public bool InsertPhieuDat_ChiTiet(DTO.ChiTiet_ChiTietPhieuDatPhongDTO chitiet_chitietphieudat)
        {
            Dictionary<string, object> paramlist = new Dictionary<string, object>();
            paramlist.Add("@MaChiTietPhieuDat", chitiet_chitietphieudat.ChiTietPhieuDatPhong.SoTT);
            //if (chitiet_chitietphieudat.MaPhong != null)
            //{
            //    paramlist.Add("@MaPhong", chitiet_chitietphieudat.MaPhong.MaPhong);
            //}
            //else
            //{
            //    paramlist.Add("@MaPhong","");
            //}
            paramlist.Add("@TrangThai", chitiet_chitietphieudat.TrangThai);
          
            return this.ExecuteUpdate("SP_ChiTiet_ChiTietPhieuDatPhong_Insert", paramlist);
           
        }

        public bool UpdatePhieuDat_ChiTiet(DTO.ChiTiet_ChiTietPhieuDatPhongDTO chitiet_chitietphieudat)
        {
            Dictionary<string, object> paramlist = new Dictionary<string, object>();

            paramlist.Add("@Stt", chitiet_chitietphieudat.Stt);
            
            paramlist.Add("@MaChiTietPhieuDat", chitiet_chitietphieudat.ChiTietPhieuDatPhong.SoTT);
           
            paramlist.Add("@MaPhong", chitiet_chitietphieudat.MaPhong.MaPhong);
            
            paramlist.Add("@TrangThai", chitiet_chitietphieudat.TrangThai);

            return this.ExecuteUpdate("SP_ChiTiet_ChiTietPhieuDatPhong_Update", paramlist);
        }

        public bool DeletePhieuDat_ChiTiet(DTO.ChiTiet_ChiTietPhieuDatPhongDTO chitiet_chitietphieudat)
        {
            throw new NotImplementedException();
        }

        public DTO.ChiTiet_ChiTietPhieuDatPhongDTO ConvertObjectDataRowToChiTiet_ChiTietPhieuDatPhongDTO(System.Data.DataRow dr)
        {
            if (dr != null)
            {
                ChiTiet_ChiTietPhieuDatPhongDTO chitietdto = new ChiTiet_ChiTietPhieuDatPhongDTO();

                chitietdto.Stt = long.Parse(dr["Stt"].ToString());

                IChiTietPhieuDat ichitietphieudat = new ChiTietPhieuDatDAL();
                chitietdto.ChiTietPhieuDatPhong = ichitietphieudat.GetChiTietPhieuDatByID(long.Parse(dr["MaChiTietPhieuDat"].ToString()));

                if (dr["MaPhong"].ToString() != "")
                {
                    IPhong iphong = new PhongDAL();
                    chitietdto.MaPhong = iphong.GetPhongByID(dr["MaPhong"].ToString());
                }

                chitietdto.TrangThai = bool.Parse(dr["TrangThai"].ToString());

                return chitietdto;

            }
            return null;
        }


        public List<DTO.ChiTiet_ChiTietPhieuDatPhongDTO> GetListPhieuDat_ChiTietByMaPhieuDat(string MaPhieuDat)
        {
            List<ChiTiet_ChiTietPhieuDatPhongDTO> listschitietphieu = new List<ChiTiet_ChiTietPhieuDatPhongDTO>();

            Dictionary<string, object> paramlist = new Dictionary<string, object>();

            paramlist.Add("@MaPhieuDat", MaPhieuDat);

            DataTable dt = this.DTExecuteSelect("SP_ChiTiet_ChiTietPhieuDatPhong_GetByMaPhieuDat", paramlist);

foreach (DataRow dr in dt.Rows)
            {
                listschitietphieu.Add(ConvertObjectDataRowToChiTiet_ChiTietPhieuDatPhongDTO(dr));
            }

            return listschitietphieu;
        }


        public ChiTiet_ChiTietPhieuDatPhongDTO GetPhieuDat_ChiTietByID(string MaChiTiet)
        {
            ChiTiet_ChiTietPhieuDatPhongDTO chitiet_chitietdto = new ChiTiet_ChiTietPhieuDatPhongDTO();

            Dictionary<string, object> paramlist = new Dictionary<string, object>();

            paramlist.Add("@Stt", MaChiTiet);

            DataTable dt = this.DTExecuteSelect("SP_ChiTiet_ChiTietPhieuDatPhong_GetByID", paramlist);

            chitiet_chitietdto = ConvertObjectDataRowToChiTiet_ChiTietPhieuDatPhongDTO(dt.Rows[0]);

            return chitiet_chitietdto;
        }
    }
}
